/**
 * 异步错误处理包装函数
 * 
 * 用于包装异步路由处理函数，确保异步错误能被正确传递给错误处理中间件
 * 
 * @param {Function} fn 异步路由处理函数
 * @returns {Function} 包装后的处理函数
 */
function asyncHandler(fn) {
  return (req, res, next) => {
    Promise.resolve(fn(req, res, next)).catch(next);
  };
}

module.exports = asyncHandler;